# Maintainer: Alexander F. Rødseth <xyproto@archlinux.org>
# Contributor: John <graysky@archlinux.us>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Judd Vinet <jvinet@zeroflux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - added --without-avahi to configure
#  - removed gtk2 from deps and --with-gtk from configure
#  - patch to allow zero timeout (INT_MAX time to complete)

pkgname=distcc
pkgver=3.3.5
pkgrel=3
_gccver=10.2.0 # Current GCC version, used for symlinks. See FS#69044
pkgdesc='Distributed compilation service for C, C++ and Objective-C'
arch=(x86_64)
url='https://github.com/distcc/distcc'
license=(GPL)
depends=(popt)
makedepends=(git python gtk3)
optdepends=("gcc=$_gccver"
            "python: for python bindings"
            "gtk3: for distccmon")
backup=(etc/conf.d/distccd
        etc/distcc/hosts)
source=("git+$url#commit=8d2a5709d249949e8177dcf08b56dbe7857daa7f" # tag: v3.3.5
        distccd.conf.d
        distccd.service
        sysusers.conf
        gtk3.patch::https://github.com/distcc/distcc/commit/ff0a09f9e335d26265d8955176df1009ce40f518.patch
        allow-zero-timeout.patch)
sha256sums=('SKIP'
            '43e02b461841ca2976816c244a0eca8b24820ca143f73cc0924403d75a8c012f'
            '360493245590d8c1480ff93cd30c9e81cb86efebacd78e45f37e7d6cdbcc2136'
            '4e037a6225f498b51d6902d117be979454ac78ec5fd2f65f1d5a38e10859612a'
            'fa931b9e0356878469a10c647573d8b20ce45a21d77cffbdd56a36983923bcb5'
            '73ac95393ee94bcb28f49499e8eec61bfd29a7de38889eaebd237fbbcba6e2c6')

prepare() {
  cd $pkgname
  patch -p1 -i "$srcdir/gtk3.patch"
  patch -p1 -i ../allow-zero-timeout.patch
  ./autogen.sh
  sed -i 's/ install-gnome-data//g' Makefile.in
  # FS#66418, support Python 3.9
  find . -name '*.py' -type f -exec sed -i 's,e.clock(,e.perf_counter(,g' {} \;
  # Remove debug print, ref. https://github.com/distcc/distcc/commit/2df787cc0c02743254d5e6c04a38da82f1e3d9f6
  sed -i '/fisk state/d' src/mon-gnome.c
}

build() {
  cd $pkgname
  export CFLAGS+=' -fcommon'
  ./configure \
    --enable-rfc2553 \
    --mandir=/usr/share/man \
    --prefix=/usr \
    --sbindir=/usr/bin \
    --sysconfdir=/etc \
    --without-avahi \
    --with-gtk
  make WERROR_CFLAGS= INCLUDESERVER_PYTHON=/usr/bin/python
}

package() {
  make -C $pkgname \
    DESTDIR="$pkgdir" \
    INCLUDESERVER_PYTHON=/usr/bin/python \
    install

  install -Dm644 distccd.conf.d "$pkgdir/etc/conf.d/distccd"
  install -Dm644 distccd.service \
    "$pkgdir/usr/lib/systemd/system/distccd.service"

  # Package symlinks
  _targets=(c++ c89 c99 cc clang clang++ cpp g++ gcc)
  install -d "$pkgdir/usr/lib/$pkgname/bin"
  for bin in "${_targets[@]}"; do
    # For whitelist since version 3.3, see FS#57978
    ln -sf ../../bin/$pkgname "$pkgdir/usr/lib/$pkgname/$bin"
    # Needed for makepkg to work
    ln -sf ../../../bin/$pkgname "$pkgdir/usr/lib/$pkgname/bin/$bin"
  done

  # FS#67629
  install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/distccd.conf"
}
